package com.shujia.scala

import scala.collection.mutable
import scala.collection.mutable.ListBuffer

object Demo23Mutable {
  def main(args: Array[String]): Unit = {
    /**
     * 可变list
     * list有的方法再listBuffer中都有
     *
     */
    val listBuffer = new ListBuffer[Int]

    //增加元素
    listBuffer += 1
    listBuffer += 2
    listBuffer += 3
    listBuffer += 4

    //增加多个元素
    listBuffer ++= List(6, 7, 8, 9)
    println(listBuffer)

    //删除元素
    listBuffer -= 4
    println(listBuffer)

    //更新元素
    listBuffer.update(3, 100)
    println(listBuffer)

    //转换成list
    val list: List[Int] = listBuffer.toList
    println(list)


    /**
     * 可变Set
     *
     */
    val hashSet = new mutable.HashSet[String]()

    //增加元素
    hashSet += "java"

    //批量增加元素
    hashSet ++= List("hadoop", "spark")
    println(hashSet)

    //删除元素
    hashSet -= "java"
    println(hashSet)


    /**
     * 可变map
     *
     */
    val hashMap = new mutable.HashMap[String, Int]()

    //增加元素
    hashMap.put("001", 23)
    hashMap += "002" -> 24
    //批量插入
    hashMap ++= Map("003" -> 25, "004" -> 23)

    println(hashMap)
    //更新元素
    hashMap.update("001", 25)

    //删除元素
    hashMap.remove("002")
    hashMap -= "001"

    println(hashMap)
  }

}
